package javase2.day09.demo02;

import java.io.FileInputStream;
import java.io.IOException;

/*
java.io.InputStream
这个抽象类是表示输入字节流的所有类的超类
    构造方法:
            1.int read()
            2.int read(byte[] b)
            3.void close()

java.io.FileInputStream extends InputStream
FileInputStream文件字节输入流
作用：把硬盘数据读取到内存使用
    构造方法：
            1.FileInputStream(File file) File文件
            2.FileInputStream(String name) String文件路径
     读取数据原理（硬盘-->内存）：
            Java程序---->JVM--->OS--->OS读取数据方法--->读取文件
     使用步骤：
            1.创建FileInputStream对象，构造方法中绑定要读取的数据源
            2.使用read方法读取数据
            3.释放资源
 */
public class Demo01InputStream {
    public static void main(String[] args) throws IOException {
        //1.创建FileInputStream对象，构造方法中绑定要读取的数据源
        //%MODULE_WORKING_DIR和$MODULE_DIR$一样都是D:\gitstudydemo使用相对路径的默认路径是D:\gitstudydemo
        FileInputStream fis = new FileInputStream("src\\javase2\\day09\\demo01\\a.txt");

        //2.使用read方法读取数据 从该输入流读取一个字节的数据 读到末尾返回-1
        /*
        不知道读取数据的次数所以使用死循环
        出口就是当读取到末尾时判断一下
         */
        int len=0;
        while ((len=fis.read())!=-1){
            System.out.print((char) len);//abc
        }
        fis.close();

    }
}
